"""  自定义线程 """

import threading #导入线程的全部模块
#导入随机数模块  只想导入随机数模块中整数随机的函数
from random import randint #从随机模块中导入随机整数函数
from time import time,sleep

#自定义线程 类名 MyThread  继承于模块中的Thread
class MyThread(threading.Thread):
    # Java 构造函数 构造器 构造方法  self  === this
    def __init__(self, filname):
        super().__init__()#必须要调用父类的init函数
        self._filename = filname
        #Java toString
    def __str__(self):
        pass
    
    def run(self):
        print('开始下载%s......' % self._filename)
        # 利用随机数生成下载的剩余时间
        time_to_download = randint(5, 10)
        print('剩余时间%d秒' % time_to_download)
        sleep(time_to_download)
        print("%s下载完成" % self._filename)
        

def main():
    # 获得开始时间
    start = time()
    # 在创建的线程的时候，可以对函数进行传参(元组)
    thread1 = MyThread('盗墓笔记.txt')
    thread2 = MyThread('听泉鉴宝.war')
    # 启动线程
    thread1.start()
    thread2.start()

    thread1.join()  # jion 线程同步的数据，主线程任务结束后进入阻塞状态，已知等到其他子线程执行结束之后，主线程在终止
    thread2.join()

    # 因为线程开启之后 会抢夺CPU资源
    end = time()
    print('总共耗费了%.3f秒' % (end - start))


if __name__ == '__main__':
    main()